Traditionally, there are two approaches for displaying targets for each eye-point's perspective in a 3D virtual training environment. The simplest approach is to render the entire view from a single perspective, which will result in the target being perspectively correct strictly for the person looking at the scene from a single eye-point. FIG. 1A illustrates a top-down view of how multiple models 14 are perceived in a single eye-point system 10. FIG. 1B illustrates a perspective view of how the five rectangular objects 14 spread across a scene would render in a system using a single eye point 12.
FIG. 2 is an example of scene rendered with a single viewpoint and no perspective correction for multiple viewers. Notice that the side of object 14 is clearly visible because of the perspective added for the centrally located single eye-point.
One drawback to the single eye-point rendering approach is that for eye-points other than the eye-point that served as the rendering eye-point, the models will be perspectively incorrect. When viewed from any position other than the rendering point, the models will have parallax (i.e. traditional parallax error). The models may also appear to be the incorrect distance.
This is a problem in training simulations where multiple people are participating. For example, in a firing range, training range or virtual reality simulating range where each trainee is provided with their own target or targets on a shared screen, it may be desirable for each target to look correct to the respective trainee that's viewing that target. The single eye-point rendering approach does not provide targets rendered correctly for multiple eye-points. As may be seen in FIG. 2, the left most model 14 is perspectively correct for someone centrally located but would not be correct for someone standing directly in front of the left most model. In systems that support multiple trainees, all but maybe one of the participants involved in the training exercise will likely be viewing the rendered scene from viewpoints other than the rendering eye-point. Any participants not located at the rendering location eye-point, or at least close, will perceive parallax error and other unwanted inconsistencies.
The perceived parallax error creates problems for the participants during training. For example, during training that requires model distance estimation (for models of known size), the viewer will incorrectly estimate the distance to the model when viewed from a position that is far from the rendered eye-point. In addition, models farther to the left or right of the rendered eye-point will be skewed unnaturally from the perspective of those viewing the image from different locations.
Rather than rendering from a single eye-point, another approach is to simply rotate the models to face the eye-point of the viewer. FIG. 3 illustrates a scene with five rectangular blocks 14 spread across the scene wherein each block 14 has been rotated to face the rendering eye-point 12 in the center. One problem with this technique is that it will result in unnatural skewing of geometry based on the perspective transformation from camera space to screen space.
Another approach for rendering that at least considers multiple viewpoints is illustrated in FIG. 4. In the embodiment shown in FIG. 4, each eye point 12 is used to render a selected portion 13 of the scene separately including both the foreground models 14 as well as the background. In FIG. 4, each eye-point's perspective is rendered separately and a composite image is constructed from images adjacent to one another. The images are combined to form a composite image based on the relative location of each eye-point 12.
One drawback to the approach illustrated in FIG. 4 is the individual eye-points 12 are discontinuous. Because each portion of the scene is rendered separately from a different eye-point 12, a vertical edge or blending/fading from one vertical slice to the next is visible in the final image. This blending/fading edge is particularly noticeable in the background scene. Moreover, in situations where a model moves across the boundary between rendered views, a noticeable unrealistic discontinuity will be evident to viewers.
Many prior approaches have attempted to have a completely separate view for each person. These approaches are cost prohibitive and still have issues with providing a continuous panoramic view. What is needed is a more effective way to render a scene with multiple objects where each object needs to be viewed from a separate eye-point with the correct perspective for that eye-point while still rendering a continuous scene.